The present invention relates to the field of disk drives, and in particular, to a system for ordering or laying-out data blocks on a disk drive.
Most personal computers include at least one disk drive system for storage of data. Typically, disk drive systems include one or more (e.g., three) disks or platters, generically referred to as the recording media. The platters are each connected in a spaced-apart fashion to a spindle that is employed to rotate or spin the platters. Typically, one read/write head is provided for each side or surface of each platter. The heads are mounted on actuators that can be moved radially relative to the platters.
Another major component of disk drive systems is the firmware that controls the disk drive. Disk drive firmware is the software that is embedded in the disk drive system and executes on a local disk controller processor(s), to direct overall drive operation. Typically, disk drive firmware is used to control at least: (1) the spinning of the disk drive spindle; (2) the movement of the actuator arms; and (3) the data path between the read/write heads and the host computer. The design of the firmware in a disk drive system is one of the major expenses in the design of the entire system.
One of the responsibilities of the firmware is to order the data on the media, which means to arrange the data on the media in an optimum way based on potentially many different factors. Some of the factors that may influence the optimum ordering of the data include, but are not limited to: (1) the amount of time it takes to perform a head switch operation (the operation of transitioning between reading or writing with one head to reading or writing with a different head); (2) the amount of time it takes to perform a cylinder switch operation (the operation of moving the actuator to position the read/write head at a different radial position relative to the media); (3) the sequential transfer rate desired from disk transfers; and (4) maximizing the readability of certain types of data
For the purpose of data storage, the disk media is addressed using vectors that include, but are not limited to, the following: (1) cylinder, which corresponds to the radius on the media at which the data is located; (2) head, which corresponds to a particular side or surfaces of a particular platter on which the data is located; and (3) sector, which corresponds to the rotational position of the media at which the data is located.
This addressing is commonly referred to as the xe2x80x9cphysicalxe2x80x9d address of the data. The term xe2x80x9ctrackxe2x80x9d is used as a reference to the combination of a cylinder and head address. In other words, a particular cylinder can be found on each surface, but a track can only be found on one surface. For example, a disk drive with 1000 cylinders and 4 heads has 4000 tracks. The term xe2x80x9cblockxe2x80x9d is used to describe the addressable resolution of the disk drive as presented to the host. A sector is the physical rotational position on a track where blocks of data can be stored (e.g., 500 sectors per track for a particular radial zone of the media). Most modern disk drives use 512 byte blocks and 512 byte sectors, so the terms are used interchangeably. However, some disk drives use a different block size and/or have a block size that does not match the sector size. A xe2x80x9cblock addressxe2x80x9d is thus a number representing the address of a block to the host computer. Sequential transfers to or from the host computer always go in the order of the block address.
When choosing to order sequential blocks on the media, the firmware designer can implement any one of the following methods:
(1) Surface mode, where sequential blocks on the disk drive include all sectors on the outermost track of a given surface, followed by all sectors on the next track at lesser radius of the same surface, and so on to the innermost track of the surface, followed by the outermost track of the next surface, and so on. This method minimizes head switch operations on sequential transfers because the majority of track switches do not involve a head switch, but it does require an actuator movement together with each head switch.
(2) Cylinder mode, where sequential blocks on the disk drive include all sectors of the outermost track of a given surface, followed by all sectors on the outermost track of the next surface, continuing through all outermost tracks of all surfaces, then proceeding to the next track at lesser radius of the original surface, and repeating the process through all of the tracks on the innermost cylinder. This method causes a higher percentage of track switches on sequential transfers to involve a head switch operation.
(3) Serpentined surface mode, which starts like surface mode, but then after transferring all sectors on the innermost track of the first surface, the ordering proceeds to the innermost track of the next surface and then proceeds in an outward direction. This method minimizes head switch operations, as with surface mode. In addition, it avoids the large actuator movement when proceeding from one surface to another.
(4) Serpentined cylinder mode, which starts like cylinder mode, but then after transferring all sectors on the outermost track of the last surface, the ordering proceeds to the next innermost cylinder but remains on the same surface. This method makes sure that a head switch and an actuator movement never occur on the same sequential track switch.
It is often advantageous to use combinations of the above modes, or to use modes different than those described. For example, the designer may choose to put some maintenance type information such as a defective sector list on the outer tracks of a drive in cylinder mode to make sure that copies are stored on multiple heads. Processing could then proceed with the user data in surface mode to match the block ordering with the performance characteristics of the servo system.
Furthermore, it is not unusual to have the starting or ending points at places other than the outermost or innermost circumference of the media. For example, the designer may choose to place the lowest numbered blocks near the center of the media, to maximize performance based on the operating characteristics of a given operating system. Or he may choose to have the first n blocks scattered around the media because they contain the defect list copies and it is important to minimize the possibility of the loss of the defect list due to debris on the media.
Therefore, although surface mode, cylinder mode, and serpentined versions of the same are general approaches that are commonly used, there are many cases in which it may be advantageous to place the data and order the sequential transfers in other ways, variations of these standard ways, and/or combinations of the above.
In most, if not all, prior art disk drive systems, the mode is hard-coded in firmware to create the layout or path followed through the media in the placement of sequential data. With the design of such systems, the firmware must be re-written from scratch if it is desired to create a different layout. This can add significantly to the design cost of such systems.
Since firmware development is a major cost component of the overall development of a disk drive, it is advantageous to re-use, or xe2x80x98leveragexe2x80x99 the firmware development effort on a particular disk drive product or model into other disk drive products or models. Often, the different operating characteristics, environmental conditions, and/or intended applications of different disk drive models causes the optimum block placement and ordering on the media to vary between the models. In existing systems, this can result in a great deal of additional firmware development effort to provide a calculation that is optimized for each disk drive model.
There exists a need for a method in which the relationship of block address to physical address of data on the media can be easily configured, thus allowing maximum reuse of firmware between disk drive models and reducing development time and cost. It is against this background, and the desire to solve the problems of and improve on the prior art, that the present invention has been developed.
The present invention relates to a method of accessing data on disk media in a disk drive system. The system has control circuitry with associated memory. The method includes providing a data layout table containing the layout of the data in a tabular form in the associated memory of the control circuitry. Upon external requests to access data in the disk drive system, the external request including a block address, the method includes converting the block address in the external request to a physical address by accessing the data layout table. The method also includes accessing the data on the disk media by utilizing the physical address.
The converting operation may include locating an entry in the data layout table and calculating a head number from the entry in the data layout table and the block address. The converting operation may also includes calculating a cylinder number from the entry in the data layout table and the block address and calculating a sector number from the entry in the data layout table and the block address. The calculating a cylinder number operation may include calculating a cylinder offset from the entry in the data layout table and the block address and calculating the cylinder number from the cylinder offset and a starting cylinder for the entry in the data layout table. The calculating a cylinder number may further include determining if a direction in the entry in the data layout table is forward or backward.
The present invention is also directed to a disk drive system for storing data. The system includes at least one storage disk, the disk having a storage surface thereon on which data can be stored. The system also includes at least one sensor operatively associated with the storage surface, the sensor generating signals representative of the data stored on the storage surface. Further, the system includes control circuitry associated with the storage disk and the sensor, the control circuitry including circuitry for determining where on the storage disk a particular segment of data is stored. The determining circuitry includes a table providing a layout of the data on the storage disk, the table being employed to determine where the particular segment of data is stored.
The table may include entries for corresponding areas of the storage surface. The table may include block addresses and physical addresses. The physical addresses may include head, cylinder, and sector information. The determining circuitry may convert between the block addresses and the physical addresses.